package com.universest.swordholder.model.config

import com.alibaba.fastjson.JSONObject

/**
 * 配置项数据类，用于表示系统中的配置项信息
 *
 * @property key 配置项的唯一标识符
 * @property type 配置项的类型
 * @property name 配置项的显示名称
 * @property defaultValue 配置项的默认值
 * @property description 配置项的描述信息
 * @property extensionProperty 配置项的扩展属性
 */
data class ConfigItem(
    val key: String = "",
    val type: String = "",
    var name: String = "",
    val defaultValue: String = "",
    val description: String = "",
    var extensionProperty: String = ""
){
    /**
     * 从JSONObject构造ConfigItem对象的构造函数
     *
     * @param json 包含配置项信息的JSONObject对象
     */
    constructor(json: JSONObject): this(json.getString("key")?:"",
        json.getString("type")?:"",
        json.getString("name")?:"",
        json.getString("defaultValue")?:"",
        json.getString("description")?:"",
        json.getString("extensionProperty")?:"")

}
